package com.ldzl.service;

import com.ldzl.pojo.CkStockTaking;
import com.ldzl.pojo.CkStockTakingResult;

import java.util.List;

/**
 * 库存盘点服务接口
 */
public interface CkStockTakingService {

    /**
     * 查询库存盘点列表
     * 
     * @param ckStockTaking 库存盘点
     * @return 库存盘点集合
     */
    List<CkStockTaking> selectCkStockTakingList(CkStockTaking ckStockTaking);
    
    /**
     * 查询库存盘点详细信息
     * 
     * @param takingId 库存盘点ID
     * @return 库存盘点
     */
    CkStockTaking selectCkStockTakingById(Long takingId);
    
    /**
     * 新增库存盘点
     * 
     * @param ckStockTaking 库存盘点
     * @return 结果
     */
    int insertCkStockTaking(CkStockTaking ckStockTaking);
    
    /**
     * 修改库存盘点
     * 
     * @param ckStockTaking 库存盘点
     * @return 结果
     */
    int updateCkStockTaking(CkStockTaking ckStockTaking);
    
    /**
     * 删除库存盘点信息
     * 
     * @param takingId 库存盘点ID
     * @return 结果
     */
    int deleteCkStockTakingById(Long takingId);
    
    /**
     * 批量删除库存盘点
     * 
     * @param takingIds 需要删除的库存盘点ID
     * @return 结果
     */
    int deleteCkStockTakingByIds(Long[] takingIds);
    
    /**
     * 提交盘点单
     * 
     * @param takingId 盘点ID
     * @return 结果
     */
    int submitCkStockTaking(Long takingId);
    
    /**
     * 审核盘点单
     * 
     * @param ckStockTaking 盘点信息
     * @return 结果
     */
    int approveCkStockTaking(CkStockTaking ckStockTaking);
    
    /**
     * 查询盘点明细列表
     * 
     * @param takingId 盘点ID
     * @return 盘点明细集合
     */
    List<CkStockTakingResult> selectCkStockTakingResultList(Long takingId);
    
    /**
     * 取消盘点单
     * 
     * @param takingId 盘点ID
     * @return 结果
     */
    int cancelCkStockTaking(Long takingId);
} 